Gestures手勢設計

手勢是使用者在裝置上進行的一種物理動作,用於直接影響應用或遊戲中的物件。手勢可以透過觸控式螢幕、空中手勢,或透過包括觸控表面的輸入裝置(如觸控板、滑鼠、遙控器或遊戲控制器)來執行。
所有平臺都支援基礎手勢,如點選、滑動和拖動。雖然這些基本手勢的具體動作可能因平臺和輸入裝置而異,但使用者對這些手勢的功能非常熟悉,並期望在任何地方都能使用這些手勢。
最佳實踐
提供多種互動方式:使用者可能喜歡或需要透過語音、鍵盤、或Switch Control等其他方式與裝置互動。因此,不要假設使用者只能透過某個特定手勢完成任務。確保應用具備無障礙功能,允許不同方式的操作。
保持手勢與使用者預期一致:使用者希望手勢在不同上下文中有一致的表現。例如,使用者期望“點選”可以啟用或選擇一個物件,避免讓熟悉的手勢(如點選、滑動)執行獨特的應用操作。同時,也應避免為標準操作(如按鈕啟用或長列表滾動)設計獨特的手勢。
儘可能快速響應手勢:實用的手勢能夠增強使用者的操作體驗,並提供即時反饋。應用在使用者執行手勢時,應提供反饋,幫助使用者預期操作結果,並根據需要指示完成動作所需的操作力度或範圍。
指明手勢不可用的情況:如果某個手勢無法使用,需明確告知使用者。如果沒有清晰的反饋,使用者可能會認為應用卡住或手勢操作不正確,導致挫敗感。例如,當使用者試圖拖動被鎖定的物件時,應提示物件位置已被鎖定;或者當使用者試圖點選不可用按鈕時,按鈕的不可用狀態應明顯區分。
自定義手勢
僅在必要時新增自定義手勢:自定義手勢最適合用於那些標準手勢無法覆蓋的頻繁任務,尤其是在遊戲或繪圖應用中。如果你決定實現自定義手勢,確保其:
- 易於發現
- 簡單易執行
- 與其他手勢明顯不同
- 不是執行關鍵操作的唯一方式
讓自定義手勢易於學習:在應用中提供機會,幫助使用者快速學習並執行自定義手勢。確保在實際使用場景中測試這些互動。如果很難用簡單的語言和圖形來描述手勢,可能意味著使用者會發現這個手勢難以學習和使用。
使用快捷手勢補充標準手勢,而不是替代它們:自定義快捷手勢可以幫助使用者快速訪問應用的某些部分,但仍需提供簡單、熟悉的方式來導航和執行操作。即使可能多點選幾次,例如,使用者在層級檢視中導航時,期待在導航欄中找到返回按鈕,以便單擊一下返回上一層。許多應用會提供滑動手勢作為返回的快捷方式,但依然保留返回按鈕。
避免與系統手勢衝突:各平臺提供了一些手勢用於訪問系統功能,如watchOS中的邊緣滑動或visionOS中的翻轉手勢來訪問系統介面。避免定義與這些系統手勢衝突的自定義手勢,因為使用者期望系統控制元件始終能一致工作。在特定情況下(如遊戲或沉浸式體驗中),開發者可以暫時遮蔽系統手勢。有關更多資訊,請參閱iOS、iPadOS、watchOS和visionOS的相關平臺指南。
iOS 和 iPadOS
基礎手勢:所有平臺都支援的標準手勢,如點選、滑動等。
新增手勢:支援三指滑動、三指捏合,尤其在iPadOS中用於剪下、複製、貼上和撤銷操作。
同時識別多個手勢:當使用者用Apple Pencil和手指同時操作時,可以同時識別這些手勢。
macOS
支援裝置:使用者可以使用滑鼠、觸控板(Magic Trackpad)、或Magic Mouse執行手勢。
支援的操作:點選、滑動、滾動等標準手勢適用於macOS上的大多數應用程式。
tvOS
導航手勢:使用標準手勢和相容的遙控器導航應用和遊戲,如滑動、點選。
控制器手勢:支援遊戲控制器上自帶觸控面的控制。
visionOS
新型互動:支援獨特的手勢,如在空中點選、捏合等,尤其適用於增強現實和虛擬現實的沉浸式體驗。
手勢識別:使用先進的感測器和攝像頭來識別手部動作,允許使用者自然地與虛擬物件互動。
標準手勢:透過物理接觸或虛擬接觸與介面進行互動,同時支援自定義手勢。
儘可能支援標準手勢:在應用或遊戲中,使用者在看到某個物件時,通常首先會嘗試“點選”來選擇或啟用它。即使你同時支援自定義手勢,支援標準手勢(如點選)能幫助使用者更快適應你的應用或遊戲環境。
在可能的情況下提供直接和間接互動:優先使用間接手勢來操作UI和常見元件(如按鈕)。將直接手勢和自定義手勢保留給那些需要近距離互動或特定動作的物件,例如遊戲或互動體驗中的某些特殊場景。
避免要求特定的身體動作或姿勢來完成輸入:並不是所有使用者都能隨時進行特定的身體動作或保持某些姿勢,可能因殘疾、空間限制或其他環境因素所致。如果你的應用或體驗需要特殊的動作,建議提供替代輸入方式,讓使用者選擇最適合他們的互動方法。
透過這些手勢設計建議,可以確保你的應用和遊戲更具包容性,使用者無論處於何種環境或能力範圍,都能輕鬆使用。
設計自定義手勢的原則
優先考慮舒適性:始終評估需要自定義手勢的互動的人體工學設計。長時間保持手臂懸空或重複相同的動作可能會增加身體的壓力,造成肌肉和關節疲勞。

謹慎設計複雜手勢:包含多個手指或雙手的複雜手勢需要特別考慮。使用者在使用應用時可能無法同時使用雙手,因此如果你的互動需要複雜手勢,建議提供替代方案,減少動作需求。
避免需要使用特定手的手勢:如果某個手勢需要特定的手來觸發,使用者可能需要記住要用哪隻手,增加了認知負擔。這樣也可能不利於那些習慣用特定一隻手或有肢體差異的使用者。
與系統覆蓋層的互動
為系統覆蓋層保留手部周圍的區域:在 visionOS 中,使用者可以透過看自己的手掌來調出系統覆蓋層(如Home指示器或控制中心)。因此,避免將互動內容錨定到手部或手腕。建議將與手部相關的內容放在系統覆蓋層的區域之外,以防與Home指示器等系統元素髮生衝突。

沉浸式應用中延遲系統覆蓋行為:在某些沉浸式應用或遊戲中,可能不希望使用者看手掌時出現Home指示器,例如,當使用者戴著虛擬手套或在故事情節中時。此類情況下,你可以選擇延遲Home指示器的顯示,確保使用者沉浸在體驗中。

避免與系統手勢衝突的滾動動作:某些滾動手勢(如手腕或前臂的滾動)被保留用於系統覆蓋層的顯示。如果你的應用未意識到系統覆蓋層的存在,這些手勢會在應用內容之上觸發,因此需小心設計,確保不會與這些手勢衝突。
watchOS
雙擊功能:在watchOS 11及以後版本,使用者可以使用雙擊手勢在列表和滾動檢視中進行滾動,或者在垂直標籤檢視中進行導航。此外,你可以將開關或按鈕設定為應用、元件或Live Activity中的主要操作,當系統在Smart Stack中顯示時支援雙擊手勢。在具有主要操作的檢視中雙擊會高亮該控制元件並執行相應動作。系統也支援在通知中使用雙擊手勢,執行通知中的第一個非破壞性自定義操作。
自定義通知中的雙擊操作:系統還支援在通知中使用雙擊來執行第一個非破壞性的自定義操作。
避免在列表、滾動檢視或垂直標籤檢視中設定主要操作:這樣做會與使用者雙擊時的預設導航行為衝突,影響使用者體驗。
選擇使用者最常用的按鈕作為主要操作:在非滾動檢視中,雙擊手勢非常有用,可以執行使用者最常用的操作。例如,在媒體控制檢視中,可以將主要操作分配給播放/暫停按鈕。